# /store/book/author	$.store.book[*].author
# 书点所有书的作者
# //author	$..author
# 所有的作者
# /store/*	$.store.*
# store的所有元素。所有的bookst和bicycle
# /store//price	$.store..price
# store里面所有东西的price
# //book[3]	$..book[2]
# 第三个书
# //book[last()]	$..book[(@.length-1)]	最后一本书
# //book[position()<3]	$..book[0,1]
# $..book[:2]
# 前面的两本书。
# //book[isbn]	$..book[?(@.isbn)]	 过滤出所有的包含isbn的书。
# //book[price<10]	$..book[?(@.price<10)]	过滤出价格低于10的书。
# //*	$..*
# 所有元素。
import  jsonpath
import json

obj = json.load(open("demo.json", 'r', encoding="utf-8"))
# 书的所有的作者
authors = jsonpath.jsonpath(obj, '$..book[*].author')
print(authors)

# 所有的作者
author_list = jsonpath.jsonpath(obj, "$..author")
print(author_list)
#store下所有元素
book_list = jsonpath.jsonpath(obj, "$.store.*")
print(book_list)
# store里面所有东西的price
price_list=jsonpath.jsonpath(obj, "$.store..price")
print(price_list)

# 第三个书
book=jsonpath.jsonpath(obj,'$.store.book[2]')
print(book)

#最后一本书
book = jsonpath.jsonpath(obj, '$.store.book[(@.length-1)]')
print(book)
#前两本书
book=jsonpath.jsonpath(obj,'$..book[0,1]')
print(book)

book=jsonpath.jsonpath(obj,'$..book[:2]')
print(book)

#条件过滤
book_list=jsonpath.jsonpath(obj,'$.store[?(@.color)]')
print(book_list)

book_list=jsonpath.jsonpath(obj,'$..book[?(@.price>60)]')
print(book_list)